// import WxRequest from './request'
import WxRequest from 'mina-request'
import { getStorage, clearStorage } from './storage'
import { modal, toast } from './extendApi'
import env from './env'
// 实例化测试
const instance = new WxRequest({
  baseURL: env.baseURL,
  timeout: 15000
  // isloading: false
})
// 配置请求拦截器
instance.interceptors.request = (config) => {
  // 请求之前做什么
  // 发送请求之前 判断是否存在token 存在则在请求头携带
  const token = getStorage('token')
  if (token) {
    config.header['token'] = token
  }
  return config
}
instance.interceptors.response = async (response) => {
  const { isSuccess, data } = response
  if (!isSuccess) {
    wx.showToast({
      title: '网络异常',
      icon: 'error'
    })
    return
  }
  // 响应之前做什么
  if (!data.code) {
    data.code = 404
  }
  switch (data.code) {
    // 200说明请求成功
    case 200:
      return data
    case 208:
      // 与后端约定好 没有token或token失败
      const res = await modal({
        content: '鉴权失败,请重新登录',
        showCancel: false
      })
      if (res) {
        // 移除token 跳到登录页
        clearStorage()
        wx.navigateTo({
          url: '/pages/login/login'
        })
      }
      return Promise.reject(response)
    default:
      toast({
        title: '程序异常,请联系客服或稍后重试'
      })
      return Promise.reject(new Error('Unhandled Exception')) // 更清晰的错误信息
  }
}
export default instance
